package javase.ch02.homeWork.Test1;

import java.io.*;

/**
 * 创建对象的方式有哪些？总结并写代码
 *  2.通过反序列化组装对象
 *      将对象从文件中反序列化成对象
 * Java中提供了Serializable接口，只要实现这个接口，对象就可以被序列化。
 * 序列化反序列化主要是为让对象网络传输、持久化存储等场景
 */
public class SerializeDemo {
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        //1.先序列化，将对象写入文件中
        user u = new user("李大专");
        ObjectOutputStream oOS = new ObjectOutputStream(new FileOutputStream("JavaSE\\Test\\user.txt"));
        oOS.writeObject(u);
        oOS.close();

        //2.反序列化，将文件中的对象读取出来
        ObjectInputStream oIS = new ObjectInputStream(new FileInputStream("JavaSE\\Test\\user.txt"));
        user u1 = (user) oIS.readObject();
        System.out.println(u1.getName());
    }
}

class user implements Serializable{
    private static final long serialVersionUID = 1L;
    private String name;
    public user() {
    }

    public user(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
